Offline Storage

  • MGLOfflineStorage implements a singleton (shared object) that manages offline packs. All of this class’s instance methods are asynchronous, reflecting the fact that offline resources are stored in a database. The shared object maintains a canonical collection of offline packs in its packs property.

    See more

    Declaration

    Objective-C

    @interface MGLOfflineStorage : NSObject
  • A block to be called once an offline pack has been completely created and added.

    An application typically calls the -resume method on the pack inside this completion handler to begin the download.

    Declaration

    Objective-C

    typedef void (^MGLOfflinePackAdditionCompletionHandler)(
        MGLOfflinePack *_Nullable, NSError *_Nullable)

    Parameters

    pack

    Contains a pointer to the newly added pack, or nil if there was an error creating or adding the pack.

    error

    Contains a pointer to an error object (if any) indicating why the pack could not be created or added.

  • Posted by the shared MGLOfflineStorage object whenever an MGLOfflinePack object encounters an error while downloading. The error may be recoverable and may not warrant the user’s attention. For example, the pack’s implementation may attempt to re-request failed resources based on an exponential backoff strategy or upon the restoration of network access.

    The object is the MGLOfflinePack object that encountered the error. The userInfo dictionary contains the error object in the MGLOfflinePackErrorUserInfoKey key.

    Declaration

    Objective-C

    extern NSString *const _Nonnull MGLOfflinePackErrorNotification
  • The key for an NSError object that is encountered in the course of downloading an offline pack. This key is used in the userInfo dictionary of an MGLOfflinePackErrorNotification notification. The error’s domain is MGLErrorDomain. See MGLErrorCode for possible error codes.

    Declaration

    Objective-C

    extern NSString *const _Nonnull MGLOfflinePackErrorUserInfoKey
  • The key for an NSNumber object that indicates the maximum number of Mapbox-hosted tiles that may be downloaded and stored on the current device. This key is used in the userInfo dictionary of an MGLOfflinePackMaximumMapboxTilesReachedNotification notification. Call -unsignedLongLongValue on the object to receive the uint64_t-typed tile limit.

    Declaration

    Objective-C

    extern NSString *const _Nonnull MGLOfflinePackMaximumCountUserInfoKey
  • Posted by the shared MGLOfflineStorage object when the maximum number of Mapbox-hosted tiles has been downloaded and stored on the current device.

    The object is the MGLOfflinePack object that reached the tile limit in the course of downloading. The userInfo dictionary contains the tile limit in the MGLOfflinePackMaximumCountUserInfoKey key.

    Once this limit is reached, no instance of MGLOfflinePack can download additional tiles from Mapbox APIs until already downloaded tiles are removed by calling the -[MGLOfflineStorage removePack:withCompletionHandler:] method. Contact your Mapbox sales representative to have the limit raised.

    Declaration

    Objective-C

    extern NSString
        *const _Nonnull MGLOfflinePackMaximumMapboxTilesReachedNotification
  • Posted by the shared MGLOfflineStorage object when an MGLOfflinePack object’s progress changes. The progress may change due to a resource being downloaded or because the pack discovers during the download that more resources are required for offline viewing. This notification is posted whenever any field in the progress property changes.

    The object is the MGLOfflinePack object whose progress changed. The userInfo dictionary contains the pack’s current state in the MGLOfflinePackStateUserInfoKey key and details about the pack’s current progress in the MGLOfflinePackProgressUserInfoKey key. You may also consult the pack’s state and progress properties, which provide the same values.

    If you only need to observe changes in a particular pack’s progress, you can alternatively observe KVO change notifications to the pack’s progress key path.

    Declaration

    Objective-C

    extern NSString *const _Nonnull MGLOfflinePackProgressChangedNotification
  • The key for an NSValue object that indicates an offline pack’s current progress. This key is used in the userInfo dictionary of an MGLOfflinePackProgressChangedNotification notification. Call -MGLOfflinePackProgressValue on the object to receive the MGLOfflinePackProgress-typed progress.

    Declaration

    Objective-C

    extern NSString *const _Nonnull MGLOfflinePackProgressUserInfoKey
  • A block to be called once an offline pack has been completely invalidated and removed.

    Avoid any references to the pack inside this completion handler: by the time this completion handler is executed, the pack has become invalid, and any messages passed to it will raise an exception.

    Declaration

    Objective-C

    typedef void (^MGLOfflinePackRemovalCompletionHandler)(NSError *_Nullable)

    Parameters

    error

    Contains a pointer to an error object (if any) indicating why the pack could not be invalidated or removed.

  • The key for an NSNumber object that indicates an offline pack’s current state. This key is used in the userInfo dictionary of an MGLOfflinePackProgressChangedNotification notification. Call -integerValue on the object to receive the MGLOfflinePackState-typed state.

    Declaration

    Objective-C

    extern NSString *const _Nonnull MGLOfflinePackStateUserInfoKey
  • An offline region defined by a style URL, geographic coordinate bounds, and range of zoom levels.

    See more

    Declaration

    Objective-C

    @interface MGLTilePyramidOfflineRegion
        : NSObject <MGLOfflineRegion, NSSecureCoding, NSCopying>